function HandleContainerWorkersEdit(gui, item, options) {
  this._gui = gui;
  this._item = item;
  this._options = options;
  
  this._callbackFunc = (options && options.callbackFunc) ? options.callbackFunc : [];
  this._purchases = (options && options.purchases) ? options.purchases : [];
  
  this._createElements();
}

HandleContainerWorkersEdit.prototype._createElements = function() {
  var balance, _self = this;
  DlmanageUtils.clear(this._gui);
  
  balance = DlmanageUtils.balance(this._purchases, this._item);
  this._gui.pLeft.style.color = (balance.photo) ? '#ff0000' : '#00ff00';
  this._gui.pLeft.appendChild(document.createTextNode(balance.photo));
  this._gui.vLeft.style.color = (balance.video) ? '#ff0000' : '#00ff00';
  this._gui.vLeft.appendChild(document.createTextNode(balance.video));
  this._gui.travelLeft.style.color = (balance.travel) ? '#ff0000' : '#00ff00';
  this._gui.travelLeft.appendChild(document.createTextNode(balance.travel));
  
  for (var i = 0, il = this._item.length; i < il; i++) {
    var worker = this._item[i];
    var gworker = this._gui.users[i];
    
    gworker.title.appendChild(document.createTextNode(worker.title));
    gworker.worker.appendChild(document.createTextNode((worker) ? worker.user_account : ''));
    gworker.estimates.value = worker.estimates;
    gworker.extras.value = worker.extras;
    gworker.travel.value = worker.travels;
    
    gworker.estimates._worker = worker;
    gworker.estimates.disabled = true;
    
    gworker.extras._worker = worker;
    gworker.extras.onchange = function() { this._worker.extras = this.value;
                                           _self._callbackFunc();
                                         };
    gworker.travel._worker = worker;
    
    gworker.travel.onchange = function() { this._worker.travels =  this.value;
                                           _self._callbackFunc();
                                         };
  }
};